﻿from CadastroClientes import *
from CadastroUsuarios import *
from EntradadeDados import *
from SaidadeDados import *

def criarArquivo (arquivo):
     if os.path.exists (arquivo) == False:
          novo = open (arquivo +'.txt', 'a')
          novo.close ()
          
lista = ['Funcionarios', 'Gerente', 'Clientes']
for arquivo in lista:
     criarArquivo (arquivo)

entrada = EntradadeDados ()
saida = SaidadeDados ()


while (1):
     print ('\nMENU PRINCIPAL:         		')
     print ('1 - Acesso ao funcionario          ')# ok
     print ('2 - Acesso ao gerente 		')# ok
     print ('3 - Cadastrar gerente 		')# ok 
     print ('0 - Finalizar o sistema\n 		')# ok 

     opcao = input ('\nDigite sua opção: ') 

# ACESSO AO FUNCIONARIO  
     if opcao == '1':
          cadastro_cliente = CadastroClientes ()
          logon_usuario = entrada.Logon ()
          logon = checarUsuario ('Funcionarios.txt', logon_usuario [0], logon_usuario [1])

          if logon == True:
          
               while 1:
                    print ('\nACESSO AO FUNCIONÁRIO:')
                    print ('1 - Cadastrar cliente'   )
                    print ('2 - Exclui Cadastro de Cliente')
                    print ('3 - Altera Pontos do Cliente')
                    print ('4 - Pesquizar Cliente')
                    print ('5 - Exibe Cadastro de Clientes')
                    print ('6 - Funcionário Alterar sua Senha')
                    print ('0 - Sair\n              ')
                    op = input ('\nDigite sua opção: ') 
                    
                    if op == '0':
                         print ('\nSaindo...\n')
                         break

                    elif op == '1':
                         dados_cliente = entrada.entradasAdicionarCliente ()
                         cadastro_cliente.adicionarCliente (dados_cliente [0], dados_cliente [1],dados_cliente [2], dados_cliente [3])
                         continue
                    
                    elif op =='2':
                         cpf = entrada.entradaExcluirCliente()
                         cadastro_cliente.removerCadastroCliente (cpf)
                         continue
                         
                    elif op == '3':
                         cadastro_cliente.alterarPontosCliente ()
                         continue

                    elif op =='4':
                         cadastro_cliente.pesquisarCliente ()
                    
                    elif op == '5':
                         cadastro_cliente.exibirCadastroClientes(lista)
                         continue
 

                    elif op == '6':                                                              
                         entrada_valida = False
                         while entrada_valida == False:
                              senhas = entrada.entradaAlterarSenha ()
                              if senhas[0] == logon_usuario [1]:
                                   entrada_valida = CadastroFuncionarios ().alterarSenha (senhas [0], senhas [1])
                              else:
                                   print ('\n Senha Incorreta!\n')
                                   break
                              
# SE INFORMAR A SENHA ERRADA.
                    else:                                                                 
                         print ('\nOpção inválida!\n')
                         continue
                    
          else:
               saida.saidaLogonInvalido ()

                                   
# ENTRA NO ACESSO DO GERENTE. 
     elif opcao == '2':
          cadastro_cliente = CadastroClientes ()
          logon_usuario = entrada.Logon ()
          logon = checarUsuario ('Gerente.txt', logon_usuario [0], logon_usuario [1])

          if logon == True:
                         
               while 1:
                    print ('\nACESSO AO gerente:')
                    print ('1 - Menu funcionario')
                    print ('2 - Gerente Alterar sua Senha')
                    print ('3 - Remover Conta do gerente')
                    print ('0 - Sair\n')                               

                    op = input ('\nDigite sua opção: ') 
                    if op == '1':                                                                       
                         cadastro_funcionario = CadastroFuncionarios ()
                         
                         while 1:
                              print ('\nMenu funcionario:        ')
                              print ('1 - Adicionar um funcionario')            
                              print ('3 - Excluir funcionario    ')  
                              print ('0 - Sair\n            ')  
                                                  
                              escolha = input ('\nDigite sua escolha: ') 
                              
                              if escolha == '1':                                                   
                                   dados_funcionario = entrada.entradasAdicionarFuncionario ()
                                   cadastro_funcionario.adicionarFuncionario (dados_funcionario [0], dados_funcionario [1], dados_funcionario[2])
                                   continue
                                                                 

                              elif escolha == '3':                                                    
                                   cpf = entrada.entradaExcluirFuncionario ()
                                   cadastro_funcionario.removerFuncionario (cpf)
                                   continue

                              elif escolha == '0':                                   
                                   print ('\nSaindo...\n')
                                   break

                              else:                                                      
                                   print ('\nOpção inválida!\n')

                                   continue
                         
                    elif op == '2':                                                                         
                         entrada_valida = False
                         while entrada_valida == False:                                                          
                              senhas = entrada.entradaAlterarSenha ()
                              entrada_valida = CadastroGerente ().alterarSenha (senhas [0], senhas [1])

                    elif op == '3':                                                                                
                         dados_gerente = entrada.Logon ()
                         CadastroGerente ().removerGerente (dados_gerente [0], dados_gerente [1])
                         break

# SAIR DO ACESSO GERENTE.
                    elif op == '0':                                                                
                         print ('\nSaindo...\n')
                         break

                    else:                                                                                         
                         print ('\nOpção inválida!\n')
                         continue

          else:
               saida.saidaLogonInvalido ()
          
# ADICIONA UM GERENTE. APENAS SE NAO HOUVER GERENTE CADASTRADO.
     elif opcao == '3':                                                                            
          if os.path.exists ('Gerente.txt') == False:   
               arquivo = open ('Gerente.txt', 'a')
               arquivo.close ()
               
          if os.path.getsize('Gerente.txt')  == 0:      
               novogerente = CadastroGerente ()
               dados_gerente = entrada.entradaAdicionarGerente ()                                                
               novogerente.adicionarGerente (dados_gerente [0], dados_gerente [1], dados_gerente [2]) 
               
          else:                                          
               print ('\nJá existe um gerente cadastrado!\n')
          
# FINALIZA O SISTEMA.
     elif opcao == '0':                                                             
          print ('\nPrograma Finalizado\n')
          break

     else:                                                                               
          print ('\nOpção inválida!\n')
          continue


